//============================================================================
// Name        : indexador.cpp
// Author      : 84236   90110   90131
// Version     :
// Copyright   : Indexador
// Description : Hello World in C++, Ansi-style
//============================================================================

#include <iostream>
#include "test.h"
#include <string>
#include "GeneradorDeListadoDeDirectorio.h"
#include "Parser.h"

using namespace std;

/*
 *
 */
int main(int argc , char** argv) {
	cout<<"Indexador De Directorio"<<endl<<"-----------------------"<<endl<<endl;
	if (argc > 2) {
		string rutaDirectorio(argv[1]);
		string rutaDestino(argv[2]);
		cout<<" -> Directorio a indexar: "<<rutaDirectorio<<endl;
		cout<<" -> Directorio destino índice: "<<rutaDestino<<endl;
		if(argc > 3){
			cout<<"Corriendo Test"<<endl<<"--------------"<<endl<<endl;
			testTodos(rutaDirectorio , rutaDestino);
		}else{
			unsigned int cantidadDocumentos = 0;
			// Generando listado de archivos
			cout<<" -> Explorando documentos del directorio."<<endl;
			cantidadDocumentos= GeneradorDeListadoDeDirectorio::generarListado(rutaDirectorio,
																				rutaDestino);
			if(cantidadDocumentos > 0){
				cout<<" -> Se recuperaron "<<cantidadDocumentos<<" documentos de texto."<<endl;
				// Ejecución del parser
				cout<<" -> Ejecución de Parser."<<endl;
				Parser parser;
				parser.ejecutarParser(rutaDestino,rutaDestino);
				cout<<" -> El Parser exploro "<<parser.getCantidadDeDocumentos();
				cout<<" documentos, recuperado "<<" términos."<<endl;
			} else {
				cout<<" -> ERROR Se recuperaron 0 documentos."<<endl;
			}
		}
	}else {
		cout<<"ERROR: Debe ingresar la ruta del directorio a indexar como parámetro de ejecución."<<endl;
		cout<<"También debe ingresar a continuación del parámetro anterior la ruta de destino de";
		cout<<"los archivos que se generarán durante el indexado."<<endl<<endl;
		cout<<endl<<"Ejemplo: ./tp ./src/Directorio ./tp/Directorio"<<endl;
	}
	cout<<" -> Fin Programa."<<endl;
	return 0;
}
